<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>流程控制</title>
</head>
<body>

</body>
<script>

    /**
     *  1. 顺序执行
     *  2. 条件分支
     *      if/else---- 不要出现多于两层的嵌套
     *      switch-----尽量不使用switch
     *  3.循环
     *       for
     *       do ... while
     *
     *  4. 异步
     *       同步和异步
     * */

    /***
     *  if
     * */
    var flag = true;
    var  param = null;// 在做bool判断的时候，null、undefined、0相当于false
    var param1;
    var param2=-1;

    if(flag){ // flag == true
        //...
    }
    /***
     * ctrl + shift + ？
     * */

  /*     if (param) {
        alert('hello')
    } else {
        alert('world');
    }*/

   /* if(param2){
        alert('hello')
    }else {
        alert('world');
    }
*/

    /**
     * for
     * */

    var arr = [23,33,90]

    /*没有块级作用域*/
    for(var i=0;i<arr.length;i++){
      //  ....
    }
   // alert(i);// 2、0、3


  /*  for (var key in arr){
      //  alert(key);
        alert(arr[key]);
    }*/

     /*对象也支持for-i循环*/
    var obj = {
        id:2,
        name:'trs',
        age:34
    }

    /*for (var key in obj){
         //alert(key);
         alert(obj[key]);
    }*/



    /***
     *  同步：顺序执行、同时执行
     *  异步：
     * */
    /*document.writeln("step1"+"<br/>");
    document.writeln("step2"+"<br/>");   // 耗时操作，阻塞---假死----交互性差----loading
    document.writeln("step3"+"<br/>");*/


   console.log("step1"+"<br/>");
    setTimeout(function () {
       console.log("step2"+"<br/>");
    },2000)
    console.log("step3"+"<br/>");
</script>
</html>